package com.canos.util;

import java.util.ArrayList;
import java.util.concurrent.Callable;

import net.canos.object.Resultado;

import org.apache.commons.lang3.StringUtils;

public class Comparador implements Callable<ArrayList<Resultado>>{

	private int numElems;
	private ArrayList<String> list1;
	private ArrayList<String> list2;
	private ArrayList<Resultado> resultados;
	
	public Comparador(ArrayList<String> list1, ArrayList<String> list2, int numElems){
		this.numElems = numElems;
		this.list1 = list1;
		this.list2 = list2;
		resultados = new ArrayList<Resultado>();
	}

	@Override
	public ArrayList<Resultado> call() throws Exception {
		for(int i = 0;i<numElems/2;i++){
			Double dindex1 = Math.random()*numElems;
			Integer index1 = dindex1.intValue();
			String aux1 = list1.get(index1);
			
			Double dindex2 = Math.random()*numElems;
			Integer index2 = dindex2.intValue();
			String aux2 = list2.get(index2);
			
			Integer distancia = StringUtils.getLevenshteinDistance(aux1, aux2);
			
			Resultado r = new Resultado(aux1, aux2, distancia);
			resultados.add(r);
			
		}
		
		Util.p("resultados:"+resultados.size());
		return resultados;
		
	}
}
